package com.datamanage.asset.service;

import com.datamanage.asset.entity.Dataset;
import com.datamanage.asset.dto.DatasetDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

public interface DatasetService {
    Dataset createDataset(DatasetDTO datasetDTO, Long userId, Long companyId);
    
    Optional<Dataset> getDatasetById(Long id, Long companyId);
    
    Page<Dataset> getAllDatasets(Long companyId, Pageable pageable);
    
    Page<Dataset> getDatasetsByUserId(Long userId, Long companyId, Pageable pageable);
    
    Page<Dataset> getDatasetsByType(String type, Long companyId, Pageable pageable);
    
    Dataset updateDataset(Long id, DatasetDTO datasetDTO, Long companyId);
    
    void deleteDataset(Long id, Long companyId);
    
    List<Dataset> analyzeDataset(Long id, Long companyId);
}